COMP 9243 — Week 5 ( 10 s 1 )
نویسندگان
چکیده
Recall that group communication provides a model of communication whereby a process can send a single message to a group of other processes. When such a message is sent to a predefined group of recipients (as opposed to all nodes on the network), we refer to the communication as multicast. Since a multicast is sent out to a specific group, it is important to have agreement on the membership of that group. We distinguish between static group membership, where membership does not change at runtime, and dynamic membership, where the group membership may change. Likewise we distinguish between open and closed groups. In an open group anyone can send a message to the group, while in a closed group only group members can send messages to the group. Besides group membership there are two other key properties for multicast: reliability and ordering. With regards to reliability we are interested in message delivery guarantees in the face of failure. There are two delivery guarantees that a reliable multicast can provide: the guarantee that if the message is delivered to any member of the group it is guaranteed to be delivered to all members of the group; and the slightly weaker guarantee that if a message is delivered to any non-failed member of the group it will be delivered to all non-failed members of the group. We will further discuss multicast reliability in a future lecture. With regards to ordering we are interested in guarantees about the order in which messages are delivered to group members. This requires synchronisation between the group members in order to ensure that everyone delivers received messages in an appropriate order. We will look at four typical multicast ordering guarantees: basic (no guarantee), FIFO, causal, and total order. Before discussing the different ordering guarantees and their implementations, we introduce the basic conceptual model of operation for multicast. A multicast sender performs a single multicast send operation msend(g,m) specifying the recipient group and the message to send. This operation is provided by a multicast middleware. When it is invoked, it eventually results in the invocation of an underlying unicast send(m) operation (as provided by the underlying OS) to each member of the group. At each recipient, when a message arrives, the OS delivers the message to the multicast middleware. The middleware is responsible for reordering received messages to comply with the required ordering model and then delivering (mdeliver(m)) the message to the recipient process. Only after a message has been mdelivered is it available to the recipient and do we say that it has been successfully delivered. Note that multicast implementations do not typically follow this model directly. For example, unicasting the message to every member in the group is inefficient, and solutions using multicast trees are often used to reduce the amount of actual communication performed. Nevertheless the model is still a correct generalisation of such a system. For the following we also assume a static and closed group. We will discuss how to deal with dynamic groups in a future lecture together with reliable multicast. An open group can easily be implemented in terms of a closed group by having the sender send (i.e., unicast) its message to a single member of the group who then multicasts the message on to the group members. In basic multicast there are no ordering guarantees. Messages may be delivered in any order. The stricter orderings that we discuss next can all be described and implemented making use of basic multicast to send messages to all group members. This means that any suitable basicmulticast implementation, such as IP multicast, can be used to implement the following. FIFO multicast guarantees that message order is maintained per sender. This means that messages from a single sender are always mdelivered in the same order as they were sent. FIFO
منابع مشابه
COMP 9243 — Week 6 ( 17 s 1 )
In previous lectures we’ve mentioned that one of the reasons that distributed systems are different (and more complicated) than nondistributed systems is due to partial failure of system components. We’ve mentioned that dependability is an important challenge in designing and building distributed systems and that the presence of failure often makes achieving transparency (e.g., for RPC) difficu...
متن کاملCOMP 9243 — Week 5 ( 17 s 1 )
Synchronisation and Coordination (Part 2) Transactions A transaction can be regarded as a set of server operations that are guaranteed to appear atomic in the presence of multiple clients and partial failure. The concept of a transaction originates from the database community as a mechanism to maintain the consistency of databases. Transaction management is build around two basic operations: Be...
متن کاملThe University of New South Wales School of Computer Science & Engineering COMP 9243 — Week 1 ( 08 s 1 )
This certainly is the ideal form of a distributed system, where the “implementation detail” of building a powerful system out of many simpler systems is entirely hidden from the user. Are there any such systems? Unfortunately, when we look at the reality of networked computers, we find that the multiplicity of system components usually shines through the abstractions provided by the operating s...
متن کاملCOMP 9243 — Week 1 ( 18 s 1 )
This certainly is the ideal form of a distributed system, where the “implementation detail” of building a powerful system out of many simpler systems is entirely hidden from the user. Are there any such systems? Unfortunately, when we look at the reality of networked computers, we find that the multiplicity of system components usually shines through the abstractions provided by the operating s...
متن کاملCOMP 9243 — Week 1 ( 10 s 1 )
This certainly is the ideal form of a distributed system, where the “implementation detail” of building a powerful system out of many simpler systems is entirely hidden from the user. Are there any such systems? Unfortunately, when we look at the reality of networked computers, we find that the multiplicity of system components usually shines through the abstractions provided by the operating s...
متن کاملCOMP 9243 — Week 1 ( 17 s 1 )
This certainly is the ideal form of a distributed system, where the “implementation detail” of building a powerful system out of many simpler systems is entirely hidden from the user. Are there any such systems? Unfortunately, when we look at the reality of networked computers, we find that the multiplicity of system components usually shines through the abstractions provided by the operating s...
متن کامل